/*
 ************************************************************************************
 * Copyright (C) 2001-2011 encuestame: system online surveys Copyright (C) 2011
 * encuestame Development Team.
 * Licensed under the Apache Software License version 2.0
 * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
 * Unless required by applicable law or agreed to  in writing,  software  distributed
 * under the License is distributed  on  an  "AS IS"  BASIS,  WITHOUT  WARRANTIES  OR
 * CONDITIONS OF ANY KIND, either  express  or  implied.  See  the  License  for  the
 * specific language governing permissions and limitations under the License.
 ************************************************************************************
 */
package org.encuestame.core.integration;

import org.springframework.integration.core.MessageSelector;
import org.springframework.messaging.Message;

/**
 * Twitter message selector.
 * @author Picado, Juan juanATencuestame.org
 * @since
 */
public class TwitterMessageSelector implements MessageSelector {

    private static final int MILLI_SECS_IN_MIN = 60 * 1000;
    private static final int MAX_MESSAGES = 6;

    private int messagesLimitPerMinute = MAX_MESSAGES;
    private long limitingMinute = System.currentTimeMillis()
            + MILLI_SECS_IN_MIN;


    public boolean accept(Message<?> message) {
        if (System.currentTimeMillis() < limitingMinute) {
            if (messagesLimitPerMinute > 0) {
                messagesLimitPerMinute--;
                return true;
            } else {
                return false;
            }
        } else {
            limitingMinute += MILLI_SECS_IN_MIN;
            messagesLimitPerMinute = MAX_MESSAGES;
            return false;
        }
    }
}
